 
// bem.scss
$namespace:'xm' !default;
$block-sel:'-' !default;
$elem-sel:'__' !default;
$mod-sel:'--' !default;
 
@mixin bfc {
  height: 100%;
  overflow: hidden;
}
 
// block
@mixin b($block){
  $B:#{$namespace + $block-sel + $block};
  .#{$B}{
    // 内容占位符
    @content;
  }
}
 
@mixin e($el){
  $selector: &;
  // @at-root 平铺，编译后不会加父级选择器
  @at-root {
    #{$selector + $elem-sel + $el}{
      @content
    }
  }
}
 
@mixin m($m){
  $selector: &;
  @at-root {
    #{$selector + $mod-sel + $m}{
      @content
    }
  }
}